#ifndef  HELPER_OBJECT_STANDARDPOINTER_H
#define  HELPER_OBJECT_STANDARDPOINTER_H

#include "helper/object/Pointer.h"

namespace helper {
namespace object {

class StandardPointer : public Pointer {
public:
    explicit StandardPointer(const void * value) ;
    explicit StandardPointer(void * value) ;
    ~StandardPointer() override;

    void * set(const void * value) override;
    const void * get() const override;
    void * get() override;

    std::string toString() const override;

    Object * copy() const override ;

    bool equals(const Object & obj) const override;
private:
    void * value_;
};

} // end of namespace object
} // end of namespace helper

#endif   /* HELPER_OBJECT_STANDARDPOINTER_H */
